package com.cmc.cloud.cmclink.doc.api.document.rep;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;

/**
 * 海运费附加费 Base VO，提供给添加、修改、详细的子 VO 使用
 * 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
 *
 * @author codegen
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class BlnoFreightDetailDto {

    @Schema(description = "主键")
    private Long id;

    @Schema(description = "提单号", requiredMode = Schema.RequiredMode.REQUIRED, example = "19993")
    private Long blnoId;

    @Schema(description = "费用代码", requiredMode = Schema.RequiredMode.REQUIRED)
    private String chargeCode;

    @Schema(description = "计费维度 C=按体积吨计费，N=按箱计费，Y=按票计费", requiredMode = Schema.RequiredMode.REQUIRED)
    private String per;

    @Schema(description = "箱号")
    private String containerNo;

    @Schema(description = "箱型", example = "2")
    private String cntrType;

    @Schema(description = "箱尺寸")
    private String cntrSize;

    @Schema(description = "货类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private String cargoType;

    @Schema(description = "件数", requiredMode = Schema.RequiredMode.REQUIRED)
    private BigDecimal quantity;

    @Schema(description = "费率", requiredMode = Schema.RequiredMode.REQUIRED)
    private BigDecimal rate;

    @Schema(description = "金额", requiredMode = Schema.RequiredMode.REQUIRED)
    private BigDecimal amount;

    @Schema(description = "币种", requiredMode = Schema.RequiredMode.REQUIRED)
    private String currency;

    @Schema(description = "付费方式", requiredMode = Schema.RequiredMode.REQUIRED)
    private String payment;

    @Schema(description = "付费人")
    private String payer;

    @Schema(description = "协议号")
    private String agreementNo;

}
